1 : <?php
2 : /**
3 : * Smarty Internal Plugin Templatelexer
4 : *
5 : * This is the lexer to break the template source into tokens
6 : * @package Smarty
7 : * @subpackage Compiler
8 : * @author Uwe Tews
9 : */
10 : /**
11 : * Smarty Internal Plugin Templatelexer
12 : */
13 : class Smarty_Internal_Templatelexer
14 1 : {
15 : public $data;
16 : public $counter;
17 : public $token;
18 : public $value;
19 : public $node;
20 : public $line;
21 : public $taglineno;
22 : public $state = 1;
23 : public $strip = false;
24 : public $smarty_token_names = array ( // Text for parser error messages
25 : 'IDENTITY' => '===',
26 : 'NONEIDENTITY' => '!==',
27 : 'EQUALS' => '==',
28 : 'NOTEQUALS' => '!=',
29 : 'GREATEREQUAL' => '(>=,ge)',
30 : 'LESSEQUAL' => '(<=,le)',
31 : 'GREATERTHAN' => '(>,gt)',
32 : 'LESSTHAN' => '(<,lt)',
33 : 'MOD' => '(%,mod)',
34 : 'NOT' => '(!,not)',
35 : 'LAND' => '(&&,and)',
36 : 'LOR' => '(||,or)',
37 : 'LXOR' => 'xor',
38 : 'OPENP' => '(',
39 : 'CLOSEP' => ')',
40 : 'OPENB' => '[',
41 : 'CLOSEB' => ']',
42 : 'PTR' => '->',
43 : 'APTR' => '=>',
44 : 'EQUAL' => '=',
45 : 'NUMBER' => 'number',
46 : 'UNIMATH' => '+" , "-',
47 : 'MATH' => '*" , "/" , "%',
48 : 'INCDEC' => '++" , "--',
49 : 'SPACE' => ' ',
50 : 'DOLLAR' => '$',
51 : 'SEMICOLON' => ';',
52 : 'COLON' => ':',
53 : 'DOUBLECOLON' => '::',
54 : 'AT' => '@',
55 : 'HATCH' => '#',
56 : 'QUOTE' => '"',
57 : 'SINGLEQUOTE' => "'",
58 : 'BACKTICK' => '`',
59 : 'VERT' => '|',
60 : 'DOT' => '.',
61 : 'COMMA' => '","',
62 : 'ANDSYM' => '"&"',
63 : 'QMARK' => '"?"',
64 : 'ID' => 'identifier',
65 : 'OTHER' => 'text',
66 : 'PHP' => 'PHP code',
67 : 'LDELSLASH' => 'closing tag',
68 : 'COMMENT' => 'comment',
69 : 'LITERALEND' => 'literal close',
70 : 'AS' => 'as',
71 : 'TO' => 'to',
72 : 'STEP' => 'step',
73 : 'NULL' => 'null',
74 : 'BOOLEAN' => 'boolean'
75 : );
76 :
77 :
78 : function __construct($data,$smarty)
79 : {
80 : // set instance object
81 403 : self::instance($this);
82 403 : $this->data = preg_replace("/(\r\n|\r|\n)/", "\n", $data);
83 403 : $this->counter = 0;
84 403 : $this->line = 1;
85 403 : $this->smarty = $smarty;
86 403 : $this->ldel = preg_quote($this->smarty->left_delimiter,'/');
87 403 : $this->rdel = preg_quote($this->smarty->right_delimiter,'/');
88 403 : $this->smarty_token_names['LDEL'] = $this->smarty->left_delimiter;
89 403 : $this->smarty_token_names['RDEL'] = $this->smarty->right_delimiter;
90 403 : }
91 : public static function &instance($new_instance = null)
92 : {
93 403 : static $instance = null;
94 403 : if (isset($new_instance) && is_object($new_instance))
95 403 : $instance = $new_instance;
96 403 : return $instance;
97 : }
98 :
99 :
100 :
101 : private $_yy_state = 1;
102 : private $_yy_stack = array();
103 :
104 : function yylex()
105 : {
106 403 : return $this->{'yylex' . $this->_yy_state}();
107 : }
108 :
109 : function yypushstate($state)
110 : {
111 382 : array_push($this->_yy_stack, $this->_yy_state);
112 382 : $this->_yy_state = $state;
113 382 : }
114 :
115 : function yypopstate()
116 : {
117 382 : $this->_yy_state = array_pop($this->_yy_stack);
118 382 : }
119 :
120 : function yybegin($state)
121 : {
122 0 : $this->_yy_state = $state;
123 0 : }
124 :
125 :
126 :
127 : function yylex1()
128 : {
129 : $tokenMap = array (
130 403 : 1 => 0,
131 403 : 2 => 1,
132 403 : 4 => 0,
133 403 : 5 => 0,
134 403 : 6 => 0,
135 403 : 7 => 0,
136 403 : 8 => 0,
137 403 : 9 => 0,
138 403 : 10 => 0,
139 403 : 11 => 0,
140 403 : 12 => 0,
141 403 : 13 => 0,
142 403 : 14 => 0,
143 403 : 15 => 0,
144 403 : 16 => 2,
145 403 : 19 => 0,
146 403 : );
147 403 : if ($this->counter >= strlen($this->data)) {
148 396 : return false; // end of input
149 : }
150 403 : $yy_global_pattern = "/^(\\{\\})|^(".$this->ldel."\\*([\S\s]*?)\\*".$this->rdel.")|^(<\\?xml)|^(<\\?php)|^(<\\?=)|^([\t ]*[\r\n]+[\t ]*)|^(".$this->ldel."strip".$this->rdel.")|^(".$this->ldel."\/strip".$this->rdel.")|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)/";
151 :
152 : do {
153 403 : if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
154 403 : $yysubmatches = $yymatches;
155 403 : $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
156 403 : if (!count($yymatches)) {
157 0 : throw new Exception('Error: lexing failed because a rule matched' .
158 0 : 'an empty string. Input "' . substr($this->data,
159 0 : $this->counter, 5) . '... state TEXT');
160 : }
161 403 : next($yymatches); // skip global match
162 403 : $this->token = key($yymatches); // token number
163 403 : if ($tokenMap[$this->token]) {
164 : // extract sub-patterns for passing to lex function
165 186 : $yysubmatches = array_slice($yysubmatches, $this->token + 1,
166 186 : $tokenMap[$this->token]);
167 186 : } else {
168 403 : $yysubmatches = array();
169 : }
170 403 : $this->value = current($yymatches); // token value
171 403 : $r = $this->{'yy_r1_' . $this->token}($yysubmatches);
172 403 : if ($r === null) {
173 403 : $this->counter += strlen($this->value);
174 403 : $this->line += substr_count($this->value, "\n");
175 : // accept this token
176 403 : return true;
177 2 : } elseif ($r === true) {
178 : // we have changed state
179 : // process this token in the new state
180 1 : return $this->yylex();
181 2 : } elseif ($r === false) {
182 2 : $this->counter += strlen($this->value);
183 2 : $this->line += substr_count($this->value, "\n");
184 2 : if ($this->counter >= strlen($this->data)) {
185 1 : return false; // end of input
186 : }
187 : // skip this token
188 2 : continue;
189 : } else { $yy_yymore_patterns = array(
190 0 : 1 => array(0, "^(".$this->ldel."\\*([\S\s]*?)\\*".$this->rdel.")|^(<\\?xml)|^(<\\?php)|^(<\\?=)|^([\t ]*[\r\n]+[\t ]*)|^(".$this->ldel."strip".$this->rdel.")|^(".$this->ldel."\/strip".$this->rdel.")|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
191 0 : 2 => array(1, "^(<\\?xml)|^(<\\?php)|^(<\\?=)|^([\t ]*[\r\n]+[\t ]*)|^(".$this->ldel."strip".$this->rdel.")|^(".$this->ldel."\/strip".$this->rdel.")|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
192 0 : 4 => array(1, "^(<\\?php)|^(<\\?=)|^([\t ]*[\r\n]+[\t ]*)|^(".$this->ldel."strip".$this->rdel.")|^(".$this->ldel."\/strip".$this->rdel.")|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
193 0 : 5 => array(1, "^(<\\?=)|^([\t ]*[\r\n]+[\t ]*)|^(".$this->ldel."strip".$this->rdel.")|^(".$this->ldel."\/strip".$this->rdel.")|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
194 0 : 6 => array(1, "^([\t ]*[\r\n]+[\t ]*)|^(".$this->ldel."strip".$this->rdel.")|^(".$this->ldel."\/strip".$this->rdel.")|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
195 0 : 7 => array(1, "^(".$this->ldel."strip".$this->rdel.")|^(".$this->ldel."\/strip".$this->rdel.")|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
196 0 : 8 => array(1, "^(".$this->ldel."\/strip".$this->rdel.")|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
197 0 : 9 => array(1, "^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
198 0 : 10 => array(1, "^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
199 0 : 11 => array(1, "^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
200 0 : 12 => array(1, "^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
201 0 : 13 => array(1, "^(".$this->ldel."\/)|^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
202 0 : 14 => array(1, "^(".$this->ldel.")|^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
203 0 : 15 => array(1, "^(([\S\s]*?)([\t ]*[\r\n]+[\t ]*|".$this->ldel."|<\\?))|^([\S\s]+)"),
204 0 : 16 => array(3, "^([\S\s]+)"),
205 0 : 19 => array(3, ""),
206 0 : );
207 :
208 : // yymore is needed
209 : do {
210 0 : if (!strlen($yy_yymore_patterns[$this->token][1])) {
211 0 : throw new Exception('cannot do yymore for the last token');
212 : }
213 0 : $yysubmatches = array();
214 0 : if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
215 0 : substr($this->data, $this->counter), $yymatches)) {
216 0 : $yysubmatches = $yymatches;
217 0 : $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
218 0 : next($yymatches); // skip global match
219 0 : $this->token += key($yymatches) + $yy_yymore_patterns[$this->token][0]; // token number
220 0 : $this->value = current($yymatches); // token value
221 0 : $this->line = substr_count($this->value, "\n");
222 0 : if ($tokenMap[$this->token]) {
223 : // extract sub-patterns for passing to lex function
224 0 : $yysubmatches = array_slice($yysubmatches, $this->token + 1,
225 0 : $tokenMap[$this->token]);
226 0 : } else {
227 0 : $yysubmatches = array();
228 : }
229 0 : }
230 0 : $r = $this->{'yy_r1_' . $this->token}($yysubmatches);
231 0 : } while ($r !== null && !is_bool($r));
232 0 : if ($r === true) {
233 : // we have changed state
234 : // process this token in the new state
235 0 : return $this->yylex();
236 0 : } elseif ($r === false) {
237 0 : $this->counter += strlen($this->value);
238 0 : $this->line += substr_count($this->value, "\n");
239 0 : if ($this->counter >= strlen($this->data)) {
240 0 : return false; // end of input
241 : }
242 : // skip this token
243 0 : continue;
244 : } else {
245 : // accept
246 0 : $this->counter += strlen($this->value);
247 0 : $this->line += substr_count($this->value, "\n");
248 0 : return true;
249 : }
250 : }
251 : } else {
252 0 : throw new Exception('Unexpected input at line' . $this->line .
253 0 : ': ' . $this->data[$this->counter]);
254 : }
255 : break;
256 0 : } while (true);
257 :
258 0 : } // end function
259 :
260 :
261 : const TEXT = 1;
262 : function yy_r1_1($yy_subpatterns)
263 : {
264 :
265 0 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
266 0 : }
267 : function yy_r1_2($yy_subpatterns)
268 : {
269 :
270 8 : $this->token = Smarty_Internal_Templateparser::TP_COMMENT;
271 8 : }
272 : function yy_r1_4($yy_subpatterns)
273 : {
274 :
275 3 : $this->token = Smarty_Internal_Templateparser::TP_XML;
276 3 : $this->yypushstate(self::PHP);
277 3 : }
278 : function yy_r1_5($yy_subpatterns)
279 : {
280 :
281 4 : $this->token = Smarty_Internal_Templateparser::TP_PHP;
282 4 : $this->yypushstate(self::PHP);
283 4 : }
284 : function yy_r1_6($yy_subpatterns)
285 : {
286 :
287 1 : $this->token = Smarty_Internal_Templateparser::TP_SHORTTAGSTART;
288 1 : $this->yypushstate(self::PHP);
289 1 : }
290 : function yy_r1_7($yy_subpatterns)
291 : {
292 :
293 23 : if ($this->strip) {
294 1 : return false;
295 : } else {
296 22 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
297 : }
298 22 : }
299 : function yy_r1_8($yy_subpatterns)
300 : {
301 :
302 1 : $this->strip = true;
303 1 : return false;
304 : }
305 : function yy_r1_9($yy_subpatterns)
306 : {
307 :
308 1 : $this->strip = false;
309 1 : return false;
310 : }
311 : function yy_r1_10($yy_subpatterns)
312 : {
313 :
314 1 : $this->yypushstate(self::LITERAL);
315 1 : return true;
316 : }
317 : function yy_r1_11($yy_subpatterns)
318 : {
319 :
320 1 : return false; // unexspected here just ignore
321 : }
322 : function yy_r1_12($yy_subpatterns)
323 : {
324 :
325 0 : if ($this->smarty->auto_literal) {
326 0 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
327 0 : } else {
328 0 : $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
329 0 : $this->yypushstate(self::SMARTY);
330 0 : $this->taglineno = $this->line;
331 : }
332 0 : }
333 : function yy_r1_13($yy_subpatterns)
334 : {
335 :
336 1 : if ($this->smarty->auto_literal) {
337 1 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
338 1 : } else {
339 0 : $this->token = Smarty_Internal_Templateparser::TP_LDEL;
340 0 : $this->yypushstate(self::SMARTY);
341 0 : $this->taglineno = $this->line;
342 : }
343 1 : }
344 : function yy_r1_14($yy_subpatterns)
345 : {
346 :
347 163 : $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
348 163 : $this->yypushstate(self::SMARTY);
349 163 : $this->taglineno = $this->line;
350 163 : }
351 : function yy_r1_15($yy_subpatterns)
352 : {
353 :
354 377 : $this->token = Smarty_Internal_Templateparser::TP_LDEL;
355 377 : $this->yypushstate(self::SMARTY);
356 377 : $this->taglineno = $this->line;
357 377 : }
358 : function yy_r1_16($yy_subpatterns)
359 : {
360 :
361 182 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
362 182 : if (substr($this->value,-2) == '<?') {
363 0 : $this->value = substr($this->value,0,-2);
364 182 : } elseif (substr($this->value,-strlen($this->smarty->left_delimiter)) == $this->smarty->left_delimiter){
365 180 : $this->value = substr($this->value,0,-strlen($this->smarty->left_delimiter));
366 180 : } else {
367 14 : $this->value = rtrim($this->value);
368 : }
369 182 : if (strlen($this->value) == 0) {
370 0 : return true; // rescan
371 : }
372 182 : }
373 : function yy_r1_19($yy_subpatterns)
374 : {
375 :
376 51 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
377 51 : }
378 :
379 :
380 : function yylex2()
381 : {
382 : $tokenMap = array (
383 377 : 1 => 1,
384 377 : 3 => 1,
385 377 : 5 => 0,
386 377 : 6 => 0,
387 377 : 7 => 0,
388 377 : 8 => 0,
389 377 : 9 => 0,
390 377 : 10 => 0,
391 377 : 11 => 0,
392 377 : 12 => 0,
393 377 : 13 => 0,
394 377 : 14 => 1,
395 377 : 16 => 1,
396 377 : 18 => 1,
397 377 : 20 => 0,
398 377 : 21 => 0,
399 377 : 22 => 0,
400 377 : 23 => 0,
401 377 : 24 => 0,
402 377 : 25 => 1,
403 377 : 27 => 1,
404 377 : 29 => 1,
405 377 : 31 => 1,
406 377 : 33 => 1,
407 377 : 35 => 1,
408 377 : 37 => 1,
409 377 : 39 => 1,
410 377 : 41 => 1,
411 377 : 43 => 1,
412 377 : 45 => 1,
413 377 : 47 => 0,
414 377 : 48 => 0,
415 377 : 49 => 0,
416 377 : 50 => 0,
417 377 : 51 => 0,
418 377 : 52 => 0,
419 377 : 53 => 0,
420 377 : 54 => 0,
421 377 : 55 => 0,
422 377 : 56 => 0,
423 377 : 57 => 3,
424 377 : 61 => 0,
425 377 : 62 => 0,
426 377 : 63 => 0,
427 377 : 64 => 0,
428 377 : 65 => 0,
429 377 : 66 => 0,
430 377 : 67 => 0,
431 377 : 68 => 1,
432 377 : 70 => 1,
433 377 : 72 => 1,
434 377 : 74 => 0,
435 377 : 75 => 0,
436 377 : 76 => 0,
437 377 : 77 => 0,
438 377 : 78 => 0,
439 377 : 79 => 0,
440 377 : 80 => 0,
441 377 : 81 => 0,
442 377 : 82 => 0,
443 377 : 83 => 0,
444 377 : 84 => 0,
445 377 : 85 => 0,
446 377 : 86 => 0,
447 377 : 87 => 1,
448 377 : 89 => 0,
449 377 : 90 => 0,
450 377 : 91 => 0,
451 377 : 92 => 0,
452 377 : 93 => 0,
453 377 : 94 => 0,
454 377 : );
455 377 : if ($this->counter >= strlen($this->data)) {
456 0 : return false; // end of input
457 : }
458 377 : $yy_global_pattern = "/^((\\\\\"|\\\\'))|^(''|'([\S\s]*?)[^\\\\]')|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)/";
459 :
460 : do {
461 377 : if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
462 377 : $yysubmatches = $yymatches;
463 377 : $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
464 377 : if (!count($yymatches)) {
465 0 : throw new Exception('Error: lexing failed because a rule matched' .
466 0 : 'an empty string. Input "' . substr($this->data,
467 0 : $this->counter, 5) . '... state SMARTY');
468 : }
469 377 : next($yymatches); // skip global match
470 377 : $this->token = key($yymatches); // token number
471 377 : if ($tokenMap[$this->token]) {
472 : // extract sub-patterns for passing to lex function
473 209 : $yysubmatches = array_slice($yysubmatches, $this->token + 1,
474 209 : $tokenMap[$this->token]);
475 209 : } else {
476 377 : $yysubmatches = array();
477 : }
478 377 : $this->value = current($yymatches); // token value
479 377 : $r = $this->{'yy_r2_' . $this->token}($yysubmatches);
480 377 : if ($r === null) {
481 377 : $this->counter += strlen($this->value);
482 377 : $this->line += substr_count($this->value, "\n");
483 : // accept this token
484 377 : return true;
485 0 : } elseif ($r === true) {
486 : // we have changed state
487 : // process this token in the new state
488 0 : return $this->yylex();
489 0 : } elseif ($r === false) {
490 0 : $this->counter += strlen($this->value);
491 0 : $this->line += substr_count($this->value, "\n");
492 0 : if ($this->counter >= strlen($this->data)) {
493 0 : return false; // end of input
494 : }
495 : // skip this token
496 0 : continue;
497 : } else { $yy_yymore_patterns = array(
498 0 : 1 => array(0, "^(''|'([\S\s]*?)[^\\\\]')|^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
499 0 : 3 => array(1, "^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
500 0 : 5 => array(1, "^(".$this->ldel."\/literal".$this->rdel.")|^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
501 0 : 6 => array(1, "^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
502 0 : 7 => array(1, "^(".$this->ldel."\\s{1,})|^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
503 0 : 8 => array(1, "^(\\s{1,}".$this->rdel.")|^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
504 0 : 9 => array(1, "^(".$this->ldel."\/)|^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
505 0 : 10 => array(1, "^(".$this->ldel.")|^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
506 0 : 11 => array(1, "^(".$this->rdel.")|^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
507 0 : 12 => array(1, "^(\\s+is\\s+in\\s+)|^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
508 0 : 13 => array(1, "^(\\s+(AS|as)\\s+)|^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
509 0 : 14 => array(2, "^(\\s+(to)\\s+)|^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
510 0 : 16 => array(3, "^(\\s+(step)\\s+)|^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
511 0 : 18 => array(4, "^(\\s+instanceof\\s+)|^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
512 0 : 20 => array(4, "^(true|TRUE|True|false|FALSE|False)|^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
513 0 : 21 => array(4, "^(null|NULL|Null)|^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
514 0 : 22 => array(4, "^(\\s*===\\s*)|^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
515 0 : 23 => array(4, "^(\\s*!==\\s*)|^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
516 0 : 24 => array(4, "^(\\s*==\\s*|\\s+(EQ|eq)\\s+)|^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
517 0 : 25 => array(5, "^(\\s*!=\\s*|\\s*<>\\s*|\\s+(NE|NEQ|ne|neq)\\s+)|^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
518 0 : 27 => array(6, "^(\\s*>=\\s*|\\s+(GE|GTE|ge|gte)\\s+)|^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
519 0 : 29 => array(7, "^(\\s*<=\\s*|\\s+(LE|LTE|le|lte)\\s+)|^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
520 0 : 31 => array(8, "^(\\s*>\\s*|\\s+(GT|gt)\\s+)|^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
521 0 : 33 => array(9, "^(\\s*<\\s*|\\s+(LT|lt)\\s+)|^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
522 0 : 35 => array(10, "^(\\s+(MOD|mod)\\s+)|^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
523 0 : 37 => array(11, "^(!\\s*|(NOT|not)\\s+)|^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
524 0 : 39 => array(12, "^(\\s*&&\\s*|\\s*(AND|and)\\s+)|^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
525 0 : 41 => array(13, "^(\\s*\\|\\|\\s*|\\s*(OR|or)\\s+)|^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
526 0 : 43 => array(14, "^(\\s*(XOR|xor)\\s+)|^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
527 0 : 45 => array(15, "^(\\s+is\\s+odd\\s+by\\s+)|^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
528 0 : 47 => array(15, "^(\\s+is\\s+not\\s+odd\\s+by\\s+)|^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
529 0 : 48 => array(15, "^(\\s+is\\s+odd)|^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
530 0 : 49 => array(15, "^(\\s+is\\s+not\\s+odd)|^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
531 0 : 50 => array(15, "^(\\s+is\\s+even\\s+by\\s+)|^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
532 0 : 51 => array(15, "^(\\s+is\\s+not\\s+even\\s+by\\s+)|^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
533 0 : 52 => array(15, "^(\\s+is\\s+even)|^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
534 0 : 53 => array(15, "^(\\s+is\\s+not\\s+even)|^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
535 0 : 54 => array(15, "^(\\s+is\\s+div\\s+by\\s+)|^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
536 0 : 55 => array(15, "^(\\s+is\\s+not\\s+div\\s+by\\s+)|^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
537 0 : 56 => array(15, "^(\\((int(eger)?|bool(ean)?|float|double|real|string|binary|array|object)\\))|^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
538 0 : 57 => array(18, "^(\\(\\s*)|^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
539 0 : 61 => array(18, "^(\\s*\\))|^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
540 0 : 62 => array(18, "^(\\[\\s*)|^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
541 0 : 63 => array(18, "^(\\s*\\])|^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
542 0 : 64 => array(18, "^(\\s*->\\s*)|^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
543 0 : 65 => array(18, "^(\\s*=>\\s*)|^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
544 0 : 66 => array(18, "^(\\s*=\\s*)|^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
545 0 : 67 => array(18, "^((\\+\\+|--)\\s*)|^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
546 0 : 68 => array(19, "^(\\s*(\\+|-)\\s*)|^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
547 0 : 70 => array(20, "^(\\s*(\\*|\/|%)\\s*)|^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
548 0 : 72 => array(21, "^(\\$)|^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
549 0 : 74 => array(21, "^(\\s*;)|^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
550 0 : 75 => array(21, "^(::)|^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
551 0 : 76 => array(21, "^(\\s*:\\s*)|^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
552 0 : 77 => array(21, "^(@)|^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
553 0 : 78 => array(21, "^(#)|^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
554 0 : 79 => array(21, "^(\")|^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
555 0 : 80 => array(21, "^(`)|^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
556 0 : 81 => array(21, "^(\\|)|^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
557 0 : 82 => array(21, "^(\\.)|^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
558 0 : 83 => array(21, "^(\\s*,\\s*)|^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
559 0 : 84 => array(21, "^(\\s*&\\s*)|^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
560 0 : 85 => array(21, "^(\\s*\\?\\s*)|^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
561 0 : 86 => array(21, "^((if|elseif|while)(?![^\s]))|^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
562 0 : 87 => array(22, "^(foreach(?![^\s]))|^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
563 0 : 89 => array(22, "^(for(?![^\s]))|^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
564 0 : 90 => array(22, "^([0-9]*[a-zA-Z_]\\w*)|^(\\d+)|^(\\s+)|^(.)"),
565 0 : 91 => array(22, "^(\\d+)|^(\\s+)|^(.)"),
566 0 : 92 => array(22, "^(\\s+)|^(.)"),
567 0 : 93 => array(22, "^(.)"),
568 0 : 94 => array(22, ""),
569 0 : );
570 :
571 : // yymore is needed
572 : do {
573 0 : if (!strlen($yy_yymore_patterns[$this->token][1])) {
574 0 : throw new Exception('cannot do yymore for the last token');
575 : }
576 0 : $yysubmatches = array();
577 0 : if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
578 0 : substr($this->data, $this->counter), $yymatches)) {
579 0 : $yysubmatches = $yymatches;
580 0 : $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
581 0 : next($yymatches); // skip global match
582 0 : $this->token += key($yymatches) + $yy_yymore_patterns[$this->token][0]; // token number
583 0 : $this->value = current($yymatches); // token value
584 0 : $this->line = substr_count($this->value, "\n");
585 0 : if ($tokenMap[$this->token]) {
586 : // extract sub-patterns for passing to lex function
587 0 : $yysubmatches = array_slice($yysubmatches, $this->token + 1,
588 0 : $tokenMap[$this->token]);
589 0 : } else {
590 0 : $yysubmatches = array();
591 : }
592 0 : }
593 0 : $r = $this->{'yy_r2_' . $this->token}($yysubmatches);
594 0 : } while ($r !== null && !is_bool($r));
595 0 : if ($r === true) {
596 : // we have changed state
597 : // process this token in the new state
598 0 : return $this->yylex();
599 0 : } elseif ($r === false) {
600 0 : $this->counter += strlen($this->value);
601 0 : $this->line += substr_count($this->value, "\n");
602 0 : if ($this->counter >= strlen($this->data)) {
603 0 : return false; // end of input
604 : }
605 : // skip this token
606 0 : continue;
607 : } else {
608 : // accept
609 0 : $this->counter += strlen($this->value);
610 0 : $this->line += substr_count($this->value, "\n");
611 0 : return true;
612 : }
613 : }
614 : } else {
615 0 : throw new Exception('Unexpected input at line' . $this->line .
616 0 : ': ' . $this->data[$this->counter]);
617 : }
618 : break;
619 0 : } while (true);
620 :
621 0 : } // end function
622 :
623 :
624 : const SMARTY = 2;
625 : function yy_r2_1($yy_subpatterns)
626 : {
627 :
628 0 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
629 0 : }
630 : function yy_r2_3($yy_subpatterns)
631 : {
632 :
633 96 : $this->token = Smarty_Internal_Templateparser::TP_SINGLEQUOTESTRING;
634 96 : }
635 : function yy_r2_5($yy_subpatterns)
636 : {
637 :
638 0 : $this->yypushstate(self::LITERAL);
639 0 : return true;
640 : }
641 : function yy_r2_6($yy_subpatterns)
642 : {
643 :
644 0 : return false; // unexspected here just ignore
645 : }
646 : function yy_r2_7($yy_subpatterns)
647 : {
648 :
649 0 : if ($this->smarty->auto_literal) {
650 0 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
651 0 : } else {
652 0 : $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
653 0 : $this->yypushstate(self::SMARTY);
654 0 : $this->taglineno = $this->line;
655 : }
656 0 : }
657 : function yy_r2_8($yy_subpatterns)
658 : {
659 :
660 0 : if ($this->smarty->auto_literal) {
661 0 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
662 0 : } else {
663 0 : $this->token = Smarty_Internal_Templateparser::TP_LDEL;
664 0 : $this->yypushstate(self::SMARTY);
665 0 : $this->taglineno = $this->line;
666 : }
667 0 : }
668 : function yy_r2_9($yy_subpatterns)
669 : {
670 :
671 0 : if ($this->smarty->auto_literal) {
672 0 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
673 0 : } else {
674 0 : $this->token = Smarty_Internal_Templateparser::TP_RDEL;
675 0 : $this->yypopstate();
676 : }
677 0 : }
678 : function yy_r2_10($yy_subpatterns)
679 : {
680 :
681 0 : $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
682 0 : $this->yypushstate(self::SMARTY);
683 0 : $this->taglineno = $this->line;
684 0 : }
685 : function yy_r2_11($yy_subpatterns)
686 : {
687 :
688 7 : $this->token = Smarty_Internal_Templateparser::TP_LDEL;
689 7 : $this->yypushstate(self::SMARTY);
690 7 : $this->taglineno = $this->line;
691 7 : }
692 : function yy_r2_12($yy_subpatterns)
693 : {
694 :
695 377 : $this->token = Smarty_Internal_Templateparser::TP_RDEL;
696 377 : $this->yypopstate();
697 377 : }
698 : function yy_r2_13($yy_subpatterns)
699 : {
700 :
701 0 : $this->token = Smarty_Internal_Templateparser::TP_ISIN;
702 0 : }
703 : function yy_r2_14($yy_subpatterns)
704 : {
705 :
706 17 : $this->token = Smarty_Internal_Templateparser::TP_AS;
707 17 : }
708 : function yy_r2_16($yy_subpatterns)
709 : {
710 :
711 6 : $this->token = Smarty_Internal_Templateparser::TP_TO;
712 6 : }
713 : function yy_r2_18($yy_subpatterns)
714 : {
715 :
716 5 : $this->token = Smarty_Internal_Templateparser::TP_STEP;
717 5 : }
718 : function yy_r2_20($yy_subpatterns)
719 : {
720 :
721 0 : $this->token = Smarty_Internal_Templateparser::TP_INSTANCEOF;
722 0 : }
723 : function yy_r2_21($yy_subpatterns)
724 : {
725 :
726 35 : $this->token = Smarty_Internal_Templateparser::TP_BOOLEAN;
727 35 : }
728 : function yy_r2_22($yy_subpatterns)
729 : {
730 :
731 0 : $this->token = Smarty_Internal_Templateparser::TP_NULL;
732 0 : }
733 : function yy_r2_23($yy_subpatterns)
734 : {
735 :
736 9 : $this->token = Smarty_Internal_Templateparser::TP_IDENTITY;
737 9 : }
738 : function yy_r2_24($yy_subpatterns)
739 : {
740 :
741 2 : $this->token = Smarty_Internal_Templateparser::TP_NONEIDENTITY;
742 2 : }
743 : function yy_r2_25($yy_subpatterns)
744 : {
745 :
746 8 : $this->token = Smarty_Internal_Templateparser::TP_EQUALS;
747 8 : }
748 : function yy_r2_27($yy_subpatterns)
749 : {
750 :
751 4 : $this->token = Smarty_Internal_Templateparser::TP_NOTEQUALS;
752 4 : }
753 : function yy_r2_29($yy_subpatterns)
754 : {
755 :
756 7 : $this->token = Smarty_Internal_Templateparser::TP_GREATEREQUAL;
757 7 : }
758 : function yy_r2_31($yy_subpatterns)
759 : {
760 :
761 4 : $this->token = Smarty_Internal_Templateparser::TP_LESSEQUAL;
762 4 : }
763 : function yy_r2_33($yy_subpatterns)
764 : {
765 :
766 13 : $this->token = Smarty_Internal_Templateparser::TP_GREATERTHAN;
767 13 : }
768 : function yy_r2_35($yy_subpatterns)
769 : {
770 :
771 26 : $this->token = Smarty_Internal_Templateparser::TP_LESSTHAN;
772 26 : }
773 : function yy_r2_37($yy_subpatterns)
774 : {
775 :
776 0 : $this->token = Smarty_Internal_Templateparser::TP_MOD;
777 0 : }
778 : function yy_r2_39($yy_subpatterns)
779 : {
780 :
781 2 : $this->token = Smarty_Internal_Templateparser::TP_NOT;
782 2 : }
783 : function yy_r2_41($yy_subpatterns)
784 : {
785 :
786 5 : $this->token = Smarty_Internal_Templateparser::TP_LAND;
787 5 : }
788 : function yy_r2_43($yy_subpatterns)
789 : {
790 :
791 5 : $this->token = Smarty_Internal_Templateparser::TP_LOR;
792 5 : }
793 : function yy_r2_45($yy_subpatterns)
794 : {
795 :
796 0 : $this->token = Smarty_Internal_Templateparser::TP_LXOR;
797 0 : }
798 : function yy_r2_47($yy_subpatterns)
799 : {
800 :
801 2 : $this->token = Smarty_Internal_Templateparser::TP_ISODDBY;
802 2 : }
803 : function yy_r2_48($yy_subpatterns)
804 : {
805 :
806 0 : $this->token = Smarty_Internal_Templateparser::TP_ISNOTODDBY;
807 0 : }
808 : function yy_r2_49($yy_subpatterns)
809 : {
810 :
811 1 : $this->token = Smarty_Internal_Templateparser::TP_ISODD;
812 1 : }
813 : function yy_r2_50($yy_subpatterns)
814 : {
815 :
816 1 : $this->token = Smarty_Internal_Templateparser::TP_ISNOTODD;
817 1 : }
818 : function yy_r2_51($yy_subpatterns)
819 : {
820 :
821 1 : $this->token = Smarty_Internal_Templateparser::TP_ISEVENBY;
822 1 : }
823 : function yy_r2_52($yy_subpatterns)
824 : {
825 :
826 1 : $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVENBY;
827 1 : }
828 : function yy_r2_53($yy_subpatterns)
829 : {
830 :
831 1 : $this->token = Smarty_Internal_Templateparser::TP_ISEVEN;
832 1 : }
833 : function yy_r2_54($yy_subpatterns)
834 : {
835 :
836 1 : $this->token = Smarty_Internal_Templateparser::TP_ISNOTEVEN;
837 1 : }
838 : function yy_r2_55($yy_subpatterns)
839 : {
840 :
841 1 : $this->token = Smarty_Internal_Templateparser::TP_ISDIVBY;
842 1 : }
843 : function yy_r2_56($yy_subpatterns)
844 : {
845 :
846 1 : $this->token = Smarty_Internal_Templateparser::TP_ISNOTDIVBY;
847 1 : }
848 : function yy_r2_57($yy_subpatterns)
849 : {
850 :
851 0 : $this->token = Smarty_Internal_Templateparser::TP_TYPECAST;
852 0 : }
853 : function yy_r2_61($yy_subpatterns)
854 : {
855 :
856 35 : $this->token = Smarty_Internal_Templateparser::TP_OPENP;
857 35 : }
858 : function yy_r2_62($yy_subpatterns)
859 : {
860 :
861 35 : $this->token = Smarty_Internal_Templateparser::TP_CLOSEP;
862 35 : }
863 : function yy_r2_63($yy_subpatterns)
864 : {
865 :
866 63 : $this->token = Smarty_Internal_Templateparser::TP_OPENB;
867 63 : }
868 : function yy_r2_64($yy_subpatterns)
869 : {
870 :
871 63 : $this->token = Smarty_Internal_Templateparser::TP_CLOSEB;
872 63 : }
873 : function yy_r2_65($yy_subpatterns)
874 : {
875 :
876 6 : $this->token = Smarty_Internal_Templateparser::TP_PTR;
877 6 : }
878 : function yy_r2_66($yy_subpatterns)
879 : {
880 :
881 3 : $this->token = Smarty_Internal_Templateparser::TP_APTR;
882 3 : }
883 : function yy_r2_67($yy_subpatterns)
884 : {
885 :
886 206 : $this->token = Smarty_Internal_Templateparser::TP_EQUAL;
887 206 : }
888 : function yy_r2_68($yy_subpatterns)
889 : {
890 :
891 7 : $this->token = Smarty_Internal_Templateparser::TP_INCDEC;
892 7 : }
893 : function yy_r2_70($yy_subpatterns)
894 : {
895 :
896 21 : $this->token = Smarty_Internal_Templateparser::TP_UNIMATH;
897 21 : }
898 : function yy_r2_72($yy_subpatterns)
899 : {
900 :
901 1 : $this->token = Smarty_Internal_Templateparser::TP_MATH;
902 1 : }
903 : function yy_r2_74($yy_subpatterns)
904 : {
905 :
906 221 : $this->token = Smarty_Internal_Templateparser::TP_DOLLAR;
907 221 : }
908 : function yy_r2_75($yy_subpatterns)
909 : {
910 :
911 7 : $this->token = Smarty_Internal_Templateparser::TP_SEMICOLON;
912 7 : }
913 : function yy_r2_76($yy_subpatterns)
914 : {
915 :
916 5 : $this->token = Smarty_Internal_Templateparser::TP_DOUBLECOLON;
917 5 : }
918 : function yy_r2_77($yy_subpatterns)
919 : {
920 :
921 27 : $this->token = Smarty_Internal_Templateparser::TP_COLON;
922 27 : }
923 : function yy_r2_78($yy_subpatterns)
924 : {
925 :
926 15 : $this->token = Smarty_Internal_Templateparser::TP_AT;
927 15 : }
928 : function yy_r2_79($yy_subpatterns)
929 : {
930 :
931 17 : $this->token = Smarty_Internal_Templateparser::TP_HATCH;
932 17 : }
933 : function yy_r2_80($yy_subpatterns)
934 : {
935 :
936 56 : $this->token = Smarty_Internal_Templateparser::TP_QUOTE;
937 56 : $this->yypushstate(self::DOUBLEQUOTEDSTRING);
938 56 : }
939 : function yy_r2_81($yy_subpatterns)
940 : {
941 :
942 7 : $this->token = Smarty_Internal_Templateparser::TP_BACKTICK;
943 7 : $this->yypopstate();
944 7 : }
945 : function yy_r2_82($yy_subpatterns)
946 : {
947 :
948 17 : $this->token = Smarty_Internal_Templateparser::TP_VERT;
949 17 : }
950 : function yy_r2_83($yy_subpatterns)
951 : {
952 :
953 21 : $this->token = Smarty_Internal_Templateparser::TP_DOT;
954 21 : }
955 : function yy_r2_84($yy_subpatterns)
956 : {
957 :
958 43 : $this->token = Smarty_Internal_Templateparser::TP_COMMA;
959 43 : }
960 : function yy_r2_85($yy_subpatterns)
961 : {
962 :
963 0 : $this->token = Smarty_Internal_Templateparser::TP_ANDSYM;
964 0 : }
965 : function yy_r2_86($yy_subpatterns)
966 : {
967 :
968 17 : $this->token = Smarty_Internal_Templateparser::TP_QMARK;
969 17 : }
970 : function yy_r2_87($yy_subpatterns)
971 : {
972 :
973 85 : $this->token = Smarty_Internal_Templateparser::TP_IF;
974 85 : }
975 : function yy_r2_89($yy_subpatterns)
976 : {
977 :
978 24 : $this->token = Smarty_Internal_Templateparser::TP_FOREACH;
979 24 : }
980 : function yy_r2_90($yy_subpatterns)
981 : {
982 :
983 13 : $this->token = Smarty_Internal_Templateparser::TP_FOR;
984 13 : }
985 : function yy_r2_91($yy_subpatterns)
986 : {
987 :
988 368 : $this->token = Smarty_Internal_Templateparser::TP_ID;
989 368 : }
990 : function yy_r2_92($yy_subpatterns)
991 : {
992 :
993 167 : $this->token = Smarty_Internal_Templateparser::TP_INTEGER;
994 167 : }
995 : function yy_r2_93($yy_subpatterns)
996 : {
997 :
998 215 : $this->token = Smarty_Internal_Templateparser::TP_SPACE;
999 215 : }
1000 : function yy_r2_94($yy_subpatterns)
1001 : {
1002 :
1003 0 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
1004 0 : }
1005 :
1006 :
1007 : function yylex3()
1008 : {
1009 : $tokenMap = array (
1010 8 : 1 => 0,
1011 8 : 2 => 1,
1012 8 : 4 => 0,
1013 8 : );
1014 8 : if ($this->counter >= strlen($this->data)) {
1015 0 : return false; // end of input
1016 : }
1017 8 : $yy_global_pattern = "/^(\\?>)|^(([\S\s]*?)\\?>)|^([\S\s]+)/";
1018 :
1019 : do {
1020 8 : if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
1021 8 : $yysubmatches = $yymatches;
1022 8 : $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
1023 8 : if (!count($yymatches)) {
1024 0 : throw new Exception('Error: lexing failed because a rule matched' .
1025 0 : 'an empty string. Input "' . substr($this->data,
1026 0 : $this->counter, 5) . '... state PHP');
1027 : }
1028 8 : next($yymatches); // skip global match
1029 8 : $this->token = key($yymatches); // token number
1030 8 : if ($tokenMap[$this->token]) {
1031 : // extract sub-patterns for passing to lex function
1032 8 : $yysubmatches = array_slice($yysubmatches, $this->token + 1,
1033 8 : $tokenMap[$this->token]);
1034 8 : } else {
1035 8 : $yysubmatches = array();
1036 : }
1037 8 : $this->value = current($yymatches); // token value
1038 8 : $r = $this->{'yy_r3_' . $this->token}($yysubmatches);
1039 8 : if ($r === null) {
1040 8 : $this->counter += strlen($this->value);
1041 8 : $this->line += substr_count($this->value, "\n");
1042 : // accept this token
1043 8 : return true;
1044 0 : } elseif ($r === true) {
1045 : // we have changed state
1046 : // process this token in the new state
1047 0 : return $this->yylex();
1048 0 : } elseif ($r === false) {
1049 0 : $this->counter += strlen($this->value);
1050 0 : $this->line += substr_count($this->value, "\n");
1051 0 : if ($this->counter >= strlen($this->data)) {
1052 0 : return false; // end of input
1053 : }
1054 : // skip this token
1055 0 : continue;
1056 : } else { $yy_yymore_patterns = array(
1057 0 : 1 => array(0, "^(([\S\s]*?)\\?>)|^([\S\s]+)"),
1058 0 : 2 => array(1, "^([\S\s]+)"),
1059 0 : 4 => array(1, ""),
1060 0 : );
1061 :
1062 : // yymore is needed
1063 : do {
1064 0 : if (!strlen($yy_yymore_patterns[$this->token][1])) {
1065 0 : throw new Exception('cannot do yymore for the last token');
1066 : }
1067 0 : $yysubmatches = array();
1068 0 : if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
1069 0 : substr($this->data, $this->counter), $yymatches)) {
1070 0 : $yysubmatches = $yymatches;
1071 0 : $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
1072 0 : next($yymatches); // skip global match
1073 0 : $this->token += key($yymatches) + $yy_yymore_patterns[$this->token][0]; // token number
1074 0 : $this->value = current($yymatches); // token value
1075 0 : $this->line = substr_count($this->value, "\n");
1076 0 : if ($tokenMap[$this->token]) {
1077 : // extract sub-patterns for passing to lex function
1078 0 : $yysubmatches = array_slice($yysubmatches, $this->token + 1,
1079 0 : $tokenMap[$this->token]);
1080 0 : } else {
1081 0 : $yysubmatches = array();
1082 : }
1083 0 : }
1084 0 : $r = $this->{'yy_r3_' . $this->token}($yysubmatches);
1085 0 : } while ($r !== null && !is_bool($r));
1086 0 : if ($r === true) {
1087 : // we have changed state
1088 : // process this token in the new state
1089 0 : return $this->yylex();
1090 0 : } elseif ($r === false) {
1091 0 : $this->counter += strlen($this->value);
1092 0 : $this->line += substr_count($this->value, "\n");
1093 0 : if ($this->counter >= strlen($this->data)) {
1094 0 : return false; // end of input
1095 : }
1096 : // skip this token
1097 0 : continue;
1098 : } else {
1099 : // accept
1100 0 : $this->counter += strlen($this->value);
1101 0 : $this->line += substr_count($this->value, "\n");
1102 0 : return true;
1103 : }
1104 : }
1105 : } else {
1106 0 : throw new Exception('Unexpected input at line' . $this->line .
1107 0 : ': ' . $this->data[$this->counter]);
1108 : }
1109 : break;
1110 0 : } while (true);
1111 :
1112 0 : } // end function
1113 :
1114 :
1115 : const PHP = 3;
1116 : function yy_r3_1($yy_subpatterns)
1117 : {
1118 :
1119 8 : $this->token = Smarty_Internal_Templateparser::TP_SHORTTAGEND;
1120 8 : $this->yypopstate();
1121 8 : }
1122 : function yy_r3_2($yy_subpatterns)
1123 : {
1124 :
1125 8 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
1126 8 : $this->value = substr($this->value,0,-2);
1127 8 : }
1128 : function yy_r3_4($yy_subpatterns)
1129 : {
1130 :
1131 0 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
1132 0 : }
1133 :
1134 :
1135 : function yylex4()
1136 : {
1137 : $tokenMap = array (
1138 1 : 1 => 0,
1139 1 : 2 => 0,
1140 1 : 3 => 1,
1141 1 : 5 => 0,
1142 1 : );
1143 1 : if ($this->counter >= strlen($this->data)) {
1144 0 : return false; // end of input
1145 : }
1146 1 : $yy_global_pattern = "/^(".$this->ldel."literal".$this->rdel.")|^(".$this->ldel."\/literal".$this->rdel.")|^(([\S\s]*?)".$this->ldel."\/literal".$this->rdel.")|^([\S\s]+)/";
1147 :
1148 : do {
1149 1 : if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
1150 1 : $yysubmatches = $yymatches;
1151 1 : $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
1152 1 : if (!count($yymatches)) {
1153 0 : throw new Exception('Error: lexing failed because a rule matched' .
1154 0 : 'an empty string. Input "' . substr($this->data,
1155 0 : $this->counter, 5) . '... state LITERAL');
1156 : }
1157 1 : next($yymatches); // skip global match
1158 1 : $this->token = key($yymatches); // token number
1159 1 : if ($tokenMap[$this->token]) {
1160 : // extract sub-patterns for passing to lex function
1161 1 : $yysubmatches = array_slice($yysubmatches, $this->token + 1,
1162 1 : $tokenMap[$this->token]);
1163 1 : } else {
1164 1 : $yysubmatches = array();
1165 : }
1166 1 : $this->value = current($yymatches); // token value
1167 1 : $r = $this->{'yy_r4_' . $this->token}($yysubmatches);
1168 1 : if ($r === null) {
1169 1 : $this->counter += strlen($this->value);
1170 1 : $this->line += substr_count($this->value, "\n");
1171 : // accept this token
1172 1 : return true;
1173 1 : } elseif ($r === true) {
1174 : // we have changed state
1175 : // process this token in the new state
1176 0 : return $this->yylex();
1177 1 : } elseif ($r === false) {
1178 1 : $this->counter += strlen($this->value);
1179 1 : $this->line += substr_count($this->value, "\n");
1180 1 : if ($this->counter >= strlen($this->data)) {
1181 0 : return false; // end of input
1182 : }
1183 : // skip this token
1184 1 : continue;
1185 : } else { $yy_yymore_patterns = array(
1186 0 : 1 => array(0, "^(".$this->ldel."\/literal".$this->rdel.")|^(([\S\s]*?)".$this->ldel."\/literal".$this->rdel.")|^([\S\s]+)"),
1187 0 : 2 => array(0, "^(([\S\s]*?)".$this->ldel."\/literal".$this->rdel.")|^([\S\s]+)"),
1188 0 : 3 => array(1, "^([\S\s]+)"),
1189 0 : 5 => array(1, ""),
1190 0 : );
1191 :
1192 : // yymore is needed
1193 : do {
1194 0 : if (!strlen($yy_yymore_patterns[$this->token][1])) {
1195 0 : throw new Exception('cannot do yymore for the last token');
1196 : }
1197 0 : $yysubmatches = array();
1198 0 : if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
1199 0 : substr($this->data, $this->counter), $yymatches)) {
1200 0 : $yysubmatches = $yymatches;
1201 0 : $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
1202 0 : next($yymatches); // skip global match
1203 0 : $this->token += key($yymatches) + $yy_yymore_patterns[$this->token][0]; // token number
1204 0 : $this->value = current($yymatches); // token value
1205 0 : $this->line = substr_count($this->value, "\n");
1206 0 : if ($tokenMap[$this->token]) {
1207 : // extract sub-patterns for passing to lex function
1208 0 : $yysubmatches = array_slice($yysubmatches, $this->token + 1,
1209 0 : $tokenMap[$this->token]);
1210 0 : } else {
1211 0 : $yysubmatches = array();
1212 : }
1213 0 : }
1214 0 : $r = $this->{'yy_r4_' . $this->token}($yysubmatches);
1215 0 : } while ($r !== null && !is_bool($r));
1216 0 : if ($r === true) {
1217 : // we have changed state
1218 : // process this token in the new state
1219 0 : return $this->yylex();
1220 0 : } elseif ($r === false) {
1221 0 : $this->counter += strlen($this->value);
1222 0 : $this->line += substr_count($this->value, "\n");
1223 0 : if ($this->counter >= strlen($this->data)) {
1224 0 : return false; // end of input
1225 : }
1226 : // skip this token
1227 0 : continue;
1228 : } else {
1229 : // accept
1230 0 : $this->counter += strlen($this->value);
1231 0 : $this->line += substr_count($this->value, "\n");
1232 0 : return true;
1233 : }
1234 : }
1235 : } else {
1236 0 : throw new Exception('Unexpected input at line' . $this->line .
1237 0 : ': ' . $this->data[$this->counter]);
1238 : }
1239 : break;
1240 0 : } while (true);
1241 :
1242 0 : } // end function
1243 :
1244 :
1245 : const LITERAL = 4;
1246 : function yy_r4_1($yy_subpatterns)
1247 : {
1248 :
1249 1 : return false;
1250 : }
1251 : function yy_r4_2($yy_subpatterns)
1252 : {
1253 :
1254 0 : $this->yypopstate();
1255 0 : return false;
1256 : }
1257 : function yy_r4_3($yy_subpatterns)
1258 : {
1259 :
1260 1 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
1261 1 : $this->value = substr($this->value,0,-strlen($this->smarty->left_delimiter)-strlen($this->smarty->right_delimiter)-8);
1262 1 : $this->yypopstate();
1263 1 : if (strlen($this->value) == 0) {
1264 0 : return false; // change state directly
1265 : } else {
1266 1 : return; // change state after processiing token
1267 : }
1268 : }
1269 : function yy_r4_5($yy_subpatterns)
1270 : {
1271 :
1272 0 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
1273 0 : }
1274 :
1275 :
1276 : function yylex5()
1277 : {
1278 : $tokenMap = array (
1279 56 : 1 => 0,
1280 56 : 2 => 0,
1281 56 : 3 => 0,
1282 56 : 4 => 0,
1283 56 : 5 => 0,
1284 56 : 6 => 0,
1285 56 : 7 => 0,
1286 56 : 8 => 0,
1287 56 : 9 => 2,
1288 56 : 12 => 0,
1289 56 : );
1290 56 : if ($this->counter >= strlen($this->data)) {
1291 0 : return false; // end of input
1292 : }
1293 56 : $yy_global_pattern = "/^(".$this->ldel."\\s{1,}\/)|^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(\")|^(`\\$)|^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(".$this->ldel."|\\$|`\\$|\\\\\\\\|[^\\\\]\"))|^([\S\s]+)/";
1294 :
1295 : do {
1296 56 : if (preg_match($yy_global_pattern, substr($this->data, $this->counter), $yymatches)) {
1297 56 : $yysubmatches = $yymatches;
1298 56 : $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
1299 56 : if (!count($yymatches)) {
1300 0 : throw new Exception('Error: lexing failed because a rule matched' .
1301 0 : 'an empty string. Input "' . substr($this->data,
1302 0 : $this->counter, 5) . '... state DOUBLEQUOTEDSTRING');
1303 : }
1304 56 : next($yymatches); // skip global match
1305 56 : $this->token = key($yymatches); // token number
1306 56 : if ($tokenMap[$this->token]) {
1307 : // extract sub-patterns for passing to lex function
1308 54 : $yysubmatches = array_slice($yysubmatches, $this->token + 1,
1309 54 : $tokenMap[$this->token]);
1310 54 : } else {
1311 56 : $yysubmatches = array();
1312 : }
1313 56 : $this->value = current($yymatches); // token value
1314 56 : $r = $this->{'yy_r5_' . $this->token}($yysubmatches);
1315 56 : if ($r === null) {
1316 56 : $this->counter += strlen($this->value);
1317 56 : $this->line += substr_count($this->value, "\n");
1318 : // accept this token
1319 56 : return true;
1320 0 : } elseif ($r === true) {
1321 : // we have changed state
1322 : // process this token in the new state
1323 0 : return $this->yylex();
1324 0 : } elseif ($r === false) {
1325 0 : $this->counter += strlen($this->value);
1326 0 : $this->line += substr_count($this->value, "\n");
1327 0 : if ($this->counter >= strlen($this->data)) {
1328 0 : return false; // end of input
1329 : }
1330 : // skip this token
1331 0 : continue;
1332 : } else { $yy_yymore_patterns = array(
1333 0 : 1 => array(0, "^(".$this->ldel."\\s{1,})|^(".$this->ldel."\/)|^(".$this->ldel.")|^(\")|^(`\\$)|^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(".$this->ldel."|\\$|`\\$|\\\\\\\\|[^\\\\]\"))|^([\S\s]+)"),
1334 0 : 2 => array(0, "^(".$this->ldel."\/)|^(".$this->ldel.")|^(\")|^(`\\$)|^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(".$this->ldel."|\\$|`\\$|\\\\\\\\|[^\\\\]\"))|^([\S\s]+)"),
1335 0 : 3 => array(0, "^(".$this->ldel.")|^(\")|^(`\\$)|^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(".$this->ldel."|\\$|`\\$|\\\\\\\\|[^\\\\]\"))|^([\S\s]+)"),
1336 0 : 4 => array(0, "^(\")|^(`\\$)|^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(".$this->ldel."|\\$|`\\$|\\\\\\\\|[^\\\\]\"))|^([\S\s]+)"),
1337 0 : 5 => array(0, "^(`\\$)|^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(".$this->ldel."|\\$|`\\$|\\\\\\\\|[^\\\\]\"))|^([\S\s]+)"),
1338 0 : 6 => array(0, "^(\\$\\w+)|^(\\$)|^(([\S\s]*?)(".$this->ldel."|\\$|`\\$|\\\\\\\\|[^\\\\]\"))|^([\S\s]+)"),
1339 0 : 7 => array(0, "^(\\$)|^(([\S\s]*?)(".$this->ldel."|\\$|`\\$|\\\\\\\\|[^\\\\]\"))|^([\S\s]+)"),
1340 0 : 8 => array(0, "^(([\S\s]*?)(".$this->ldel."|\\$|`\\$|\\\\\\\\|[^\\\\]\"))|^([\S\s]+)"),
1341 0 : 9 => array(2, "^([\S\s]+)"),
1342 0 : 12 => array(2, ""),
1343 0 : );
1344 :
1345 : // yymore is needed
1346 : do {
1347 0 : if (!strlen($yy_yymore_patterns[$this->token][1])) {
1348 0 : throw new Exception('cannot do yymore for the last token');
1349 : }
1350 0 : $yysubmatches = array();
1351 0 : if (preg_match('/' . $yy_yymore_patterns[$this->token][1] . '/',
1352 0 : substr($this->data, $this->counter), $yymatches)) {
1353 0 : $yysubmatches = $yymatches;
1354 0 : $yymatches = array_filter($yymatches, 'strlen'); // remove empty sub-patterns
1355 0 : next($yymatches); // skip global match
1356 0 : $this->token += key($yymatches) + $yy_yymore_patterns[$this->token][0]; // token number
1357 0 : $this->value = current($yymatches); // token value
1358 0 : $this->line = substr_count($this->value, "\n");
1359 0 : if ($tokenMap[$this->token]) {
1360 : // extract sub-patterns for passing to lex function
1361 0 : $yysubmatches = array_slice($yysubmatches, $this->token + 1,
1362 0 : $tokenMap[$this->token]);
1363 0 : } else {
1364 0 : $yysubmatches = array();
1365 : }
1366 0 : }
1367 0 : $r = $this->{'yy_r5_' . $this->token}($yysubmatches);
1368 0 : } while ($r !== null && !is_bool($r));
1369 0 : if ($r === true) {
1370 : // we have changed state
1371 : // process this token in the new state
1372 0 : return $this->yylex();
1373 0 : } elseif ($r === false) {
1374 0 : $this->counter += strlen($this->value);
1375 0 : $this->line += substr_count($this->value, "\n");
1376 0 : if ($this->counter >= strlen($this->data)) {
1377 0 : return false; // end of input
1378 : }
1379 : // skip this token
1380 0 : continue;
1381 : } else {
1382 : // accept
1383 0 : $this->counter += strlen($this->value);
1384 0 : $this->line += substr_count($this->value, "\n");
1385 0 : return true;
1386 : }
1387 : }
1388 : } else {
1389 0 : throw new Exception('Unexpected input at line' . $this->line .
1390 0 : ': ' . $this->data[$this->counter]);
1391 : }
1392 : break;
1393 0 : } while (true);
1394 :
1395 0 : } // end function
1396 :
1397 :
1398 : const DOUBLEQUOTEDSTRING = 5;
1399 : function yy_r5_1($yy_subpatterns)
1400 : {
1401 :
1402 0 : if ($this->smarty->auto_literal) {
1403 0 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
1404 0 : } else {
1405 0 : $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
1406 0 : $this->yypushstate(self::SMARTY);
1407 0 : $this->taglineno = $this->line;
1408 : }
1409 0 : }
1410 : function yy_r5_2($yy_subpatterns)
1411 : {
1412 :
1413 0 : if ($this->smarty->auto_literal) {
1414 0 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
1415 0 : } else {
1416 0 : $this->token = Smarty_Internal_Templateparser::TP_LDEL;
1417 0 : $this->yypushstate(self::SMARTY);
1418 0 : $this->taglineno = $this->line;
1419 : }
1420 0 : }
1421 : function yy_r5_3($yy_subpatterns)
1422 : {
1423 :
1424 0 : $this->token = Smarty_Internal_Templateparser::TP_LDELSLASH;
1425 0 : $this->yypushstate(self::SMARTY);
1426 0 : $this->taglineno = $this->line;
1427 0 : }
1428 : function yy_r5_4($yy_subpatterns)
1429 : {
1430 :
1431 4 : $this->token = Smarty_Internal_Templateparser::TP_LDEL;
1432 4 : $this->yypushstate(self::SMARTY);
1433 4 : $this->taglineno = $this->line;
1434 4 : }
1435 : function yy_r5_5($yy_subpatterns)
1436 : {
1437 :
1438 56 : $this->token = Smarty_Internal_Templateparser::TP_QUOTE;
1439 56 : $this->yypopstate();
1440 56 : }
1441 : function yy_r5_6($yy_subpatterns)
1442 : {
1443 :
1444 7 : $this->token = Smarty_Internal_Templateparser::TP_BACKTICK;
1445 7 : $this->value = substr($this->value,0,-1);
1446 7 : $this->yypushstate(self::SMARTY);
1447 7 : $this->taglineno = $this->line;
1448 7 : }
1449 : function yy_r5_7($yy_subpatterns)
1450 : {
1451 :
1452 3 : $this->token = Smarty_Internal_Templateparser::TP_DOLLARID;
1453 3 : }
1454 : function yy_r5_8($yy_subpatterns)
1455 : {
1456 :
1457 0 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
1458 0 : }
1459 : function yy_r5_9($yy_subpatterns)
1460 : {
1461 :
1462 54 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
1463 54 : if (substr($this->value,-strlen($this->smarty->left_delimiter)) == $this->smarty->left_delimiter) {
1464 4 : $this->value = substr($this->value,0,-strlen($this->smarty->left_delimiter));
1465 54 : } elseif (substr($this->value,-2) == '`$') {
1466 6 : $this->value = substr($this->value,0,-2);
1467 54 : } elseif (strpbrk(substr($this->value,-1),'"$') !== false) {
1468 54 : $this->value = substr($this->value,0,-1);
1469 54 : }
1470 54 : if (strlen($this->value) == 0) {
1471 0 : return true; // rescan
1472 : }
1473 54 : }
1474 : function yy_r5_12($yy_subpatterns)
1475 : {
1476 :
1477 0 : $this->token = Smarty_Internal_Templateparser::TP_OTHER;
1478 0 : }
1479 :
1480 : }
1481 : ?>
|